package com.open.capacity.finance.service;

import com.open.capacity.finance.dto.echart.AuditWarnDto;
import com.open.capacity.finance.entity.AuditModelWarnUser;

import com.open.capacity.commons.PageResult;

import java.util.Map;
import java.util.List;

/**
 * 模型指标告警
 *
 * @author
 * @email
 * @date 2023-05-17 09:49:11
 */
public interface AuditModelWarnUserService {
    /**
     * 添加
     *
     * @param auditModelWarn
     */
    int save(AuditModelWarnUser auditModelWarn);

    /**
     * 修改
     *
     * @param auditModelWarn
     */
    int update(AuditModelWarnUser auditModelWarn);

    /**
     * 添加
     *
     * @param id
     */
    int read(Long id);

    /**
     * 添加
     *
     * @param id
     */
    int ingore(Long id, Long day);

    /**
     * 删除
     *
     * @param warnId
     */
    int deleteByWarnId(Long warnId);

    /**
     * 查询指标最新的告警记录
     *
     * @param modelId
     * @return
     */
    AuditModelWarnUser findLastByModelId(String modelId, String companyId);

    /**
     * 查询指标统计
     *
     * @return
     */
    AuditWarnDto countWarn();


    /**
     * 是否需要被通知
     *
     * @return
     */
    boolean needWarn(String modelId, String companyId, String userId);


    /**
     * 分页
     *
     * @param params
     * @return
     */
    PageResult<AuditModelWarnUser> pageMy(Map<String, Object> params);

    /**
     * 分页
     *
     * @param params
     * @return
     */
    PageResult<AuditModelWarnUser> pageAll(Map<String, Object> params);

    /**
     * 列表
     *
     * @param params
     * @return
     */
    List<AuditModelWarnUser> findAll(Map<String, Object> params);
}

